// 继承：
// 作用：减少重复的代码
// 面对对象，具有继承特性，封装，多态(多种状态)

// 面对对象属性继承：
// 构造父级构造函数
// function fn (a, b, c) {
//   this.a = a
//   this.b = b
//   this.c = c

//   // this指向：fn创建的实例对象
// }

// function fn1 (a, b, c) {
//   // 调用fn函数，将fn中的this改变成当前fn1 中的this

//   fn.call(this, a, b, c)

//   // this.a = a
//   // this指向：fn1构造函数创建的实例函数
// }

// const fn2 = new fn1('张三', 18, '男')
// console.log(fn2)

// const fn1 = new fn(1, 2, 3)
// console.log(fn1)
// 面对对象方法继承：

// function fn () { }
// fn.prototype.eat = function () {
//   console.log('正在吃饭。。。')
// }
// function fn1 () { }
// fn1.prototype = new fn()
// // fn1.prototype.constr
// const fn2 = new fn1()
// fn2.eat()

// function fn () { console.log('继承') }
// function fn1 () {
//   fn.call()
// }
// const fn2 = new fn1()
